// function foo(){
//     "use strict"//严格模式，函数调用位置和this绑定没有关系
//     console.log(this.a)//Cannot read property 'a' of undefined
// }
// var a=2
// foo()//2

function  foo(){
    console.log(this.a);
}
// var obj2 = {
//     a:4,
//     foo:foo//隐式绑定
// }
// var obj1 = {
//     a:2,
//    // foo:foo//隐式声明 ，引用
// //    foo:function (){
// //        console.log(this.a)
// //    }
// obj2:obj2
// }
//obj.foo()//2
//obj1.obj2.foo()//4

// var obj = {
//     a:2,
//     foo:foo
// }
// //var bar = obj.foo //obj并没有调用，所以bar是foo的引用，foo被绑定到全局(window)
// var bar =obj.foo() //先输出2，再报错
// var a = 'glob'
// bar() //glob

var obj ={
    a:2
}
foo.call(obj)//2